{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Regressão Linear Simples - Trabalho\n",
    "\n",
    "## Estudo de caso: Seguro de automóvel sueco\n",
    "\n",
    "Agora, sabemos como implementar um modelo de regressão linear simples. Vamos aplicá-lo ao conjunto de dados do seguro de automóveis sueco. Esta seção assume que você baixou o conjunto de dados para o arquivo insurance.csv, o qual está disponível no notebook respectivo.\n",
    "\n",
    "O conjunto de dados envolve a previsão do pagamento total de todas as reclamações em milhares de Kronor sueco, dado o número total de reclamações. É um dataset composto por 63 observações com 1 variável de entrada e 1 variável de saída. Os nomes das variáveis são os seguintes:\n",
    "\n",
    "1. Número de reivindicações.\n",
    "2. Pagamento total para todas as reclamações em milhares de Kronor sueco.\n",
    "\n",
    "Voce deve adicionar algumas funções acessórias à regressão linear simples. Especificamente, uma função para carregar o arquivo CSV chamado *load_csv ()*, uma função para converter um conjunto de dados carregado para números chamado *str_column_to_float ()*, uma função para avaliar um algoritmo usando um conjunto de treino e teste chamado *split_train_split ()*, a função para calcular RMSE chamado *rmse_metric ()* e uma função para avaliar um algoritmo chamado *evaluate_algorithm()*.\n",
    "\n",
    "Utilize um conjunto de dados de treinamento de 60% dos dados para preparar o modelo. As previsões devem ser feitas nos restantes 40%. \n",
    "\n",
    "Compare a performabce do seu algoritmo com o algoritmo baseline, o qual utiliza a média dos pagamentos realizados para realizar a predição ( a média é 72,251 mil Kronor).\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Predição: [379.7028802194452, 433.6598349976991, 150.3858224118663, 93.05655795997158, 62.70577089720378, 49.21653220264031, 32.35498383443598, 177.36429980099325, 39.09960318171771, 22.23805481351338, 93.05655795997158, 25.610364487154243, 39.09960318171771, 35.72729350807684, 89.68424828633071, 52.58884187628118, 221.2043255583245, 140.26889339094373, 153.75813208550716, 59.333461223562914, 66.07808057084465, 116.66272567545765, 96.42886763361244, 45.844222528999445, 194.2258481691976, 103.17348698089418]\n",
      "\n",
      "RMSE: 41.247017237442236\n"
     ]
    }
   ],
   "source": [
    "import csv\n",
    "import random\n",
    "import matplotlib.pyplot as plt\n",
    "from math import sqrt\n",
    "\n",
    "\n",
    "def loadCsv(filename):\n",
    "    lines = csv.reader(open(filename, \"r\"))\n",
    "    dataset = list(lines)\n",
    "    for i in range(len(dataset)):\n",
    "        dataset[i] = [float(x) for x in dataset[i]]\n",
    "    return dataset\n",
    "\n",
    "\n",
    "def splitDataset(dataset, splitRatio):\n",
    "    trainSize = int(len(dataset) * splitRatio)\n",
    "    trainSet = []\n",
    "    copy = list(dataset)\n",
    "    while len(trainSet) < trainSize:\n",
    "        index = random.randrange(len(copy))\n",
    "        trainSet.append(copy.pop(index))\n",
    "    return [trainSet, copy]\n",
    "\n",
    "# Calculate the mean value of a list of numbers\n",
    "def mean(values):\n",
    "  return sum(values) / float(len(values))\n",
    "\n",
    "# Calculate the variance of a list of numbers\n",
    "def variance(values, mean):\n",
    "  return sum([(x-mean)**2 for x in values])\n",
    "\n",
    "# Calculate covariance between x and y\n",
    "def covariance(x, mean_x, y, mean_y):\n",
    "  covar = 0.0\n",
    "  for i in range(len(x)):\n",
    "    covar += (x[i] - mean_x) * (y[i] - mean_y)\n",
    "  return covar\n",
    "\n",
    "# Calculate coefficients\n",
    "def coefficients(dataset):\n",
    "      x = [row[0] for row in dataset]\n",
    "      y = [row[1] for row in dataset]\n",
    "      x_mean, y_mean = mean(x), mean(y)\n",
    "      b1 = (covariance(x, x_mean, y, y_mean) / variance(x, x_mean))\n",
    "      b0 = y_mean - b1 * x_mean\n",
    "      return [b0, b1]\n",
    "\n",
    "def simple_linear_regression(train, test):\n",
    "  predictions = list()\n",
    "  b0, b1 = coefficients(train)\n",
    "  for row in test:\n",
    "    ypred = b0 + b1 * row[0]\n",
    "    predictions.append(ypred)\n",
    "  return predictions\n",
    "\n",
    "\n",
    "# Calculate root mean squared error\n",
    "def rmse_metric(actual, predicted):\n",
    "  sum_error = 0.0\n",
    "  for i in range(len(actual)):\n",
    "    prediction_error = predicted[i] - actual[i]\n",
    "    sum_error += (prediction_error ** 2)\n",
    "  mean_error = sum_error / float(len(actual))\n",
    "  return sqrt(mean_error\n",
    "\n",
    "# Evaluate regression algorithm on training dataset\n",
    "def evaluate_algorithm(train, test, algorithm):\n",
    "  #test_set = list()\n",
    "  #for row in dataset:\n",
    "  #  row_copy = list(row)\n",
    "  #  row_copy[-1] = None\n",
    "  #  test_set.append(row_copy)\n",
    "  predicted = algorithm(train, test)\n",
    "  print('Predição:',predicted)\n",
    "  actual = [row[-1] for row in test]\n",
    "  rmse = rmse_metric(actual, predicted)\n",
    "  return rmse\n",
    "\n",
    "\n",
    "dataset = loadCsv('insurance.csv')\n",
    "train, test = splitDataset(dataset, 0.6)\n",
    "predictions = simple_linear_regression(train, test)\n",
    "rmse = evaluate_algorithm(train, test, simple_linear_regression)\n",
    "print('\\nRMSE:', rmse)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11b284cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [row[0] for row in test]\n",
    "y = [row[1] for row in test]\n",
    "plt.scatter(x,y,alpha=1,s=100,label=\"Real\")\n",
    "plt.scatter(x,predictions,alpha=1,s=100,label=\"Predição\")\n",
    "plt.plot(x,predictions)\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
